#!/usr/bin/env python
# Create: 2019/3/9
__author__ = '749B'

COURSE = "实用数据挖掘与人工智能一月特训班"
PRICE = 3529  # RMB

p0 = {'url_info': [("宣传片", "https://media.wanmen.org/2af0549a-0b4f-4e5d-b703-69a28540feea_pc_mid")]}

p1 = {'name': "第1讲 熟悉Jupyter notebook", 'url_info': [
    ("1.1 创建新的Python环境", "https://media.wanmen.org/1d00fc1f-b918-45a8-924d-3e401b570798_pc_mid"),
    ("1.2 Python环境与版本（一）", "https://media.wanmen.org/2beec9ed-49bf-453d-a419-7d7cbfbb8986_pc_mid"),
    ("1.3 Python环境与版本（二）", "https://media.wanmen.org/c661cece-0043-42f7-97b7-771d503e4598_pc_mid"),
    ("1.4 Python环境与版本（三）", "https://media.wanmen.org/078302f7-f23a-4ce2-afab-007bde049985_pc_mid"),
    ("1.5 Python环境与版本（四）", "https://media.wanmen.org/18cfc032-0ed6-4288-b2f0-ceee203f48a5_pc_mid"),
    ("1.6 Python环境与版本（五）", "https://media.wanmen.org/ba633906-2099-44ff-889d-119cc15ffa11_pc_mid"),
    ("1.7 Python环境与版本（六）", "https://media.wanmen.org/1b108fcc-b993-45e2-9dc9-f9476d49502e_pc_mid"),
    ("1.8 Python环境与版本（七）", "https://media.wanmen.org/d49f34c1-7203-42a0-a76f-5a96cc5e888f_pc_mid"),
    ("1.9 安装决策树可视化工具Graphviz（一）", "https://media.wanmen.org/d30dd6f8-ee81-4ddc-9156-6d9dbb5f1f72_pc_mid"),
    ("1.10 安装决策树可视化工具Graphviz（二）", "https://media.wanmen.org/14541afb-bb73-4ba7-a6a4-de26b0352beb_pc_mid"),
    ("1.11 几个重要的工具包介绍（一）", "https://media.wanmen.org/259a2024-73f6-4f60-bfd2-9b13c2b2a342_pc_mid"),
    ("1.12 几个重要的工具包介绍（二）", "https://media.wanmen.org/1c31ce64-71a9-4e6e-88f1-ee10ab250b2e_pc_mid"),
    ("1.13 安装TensorFlow与Keras（一）", "https://media.wanmen.org/6e3255c2-4492-4d7f-80ec-8f62428a27a2_pc_mid"),
    ("1.14 安装TensorFlow与Keras（二）", "https://media.wanmen.org/f1844e84-14eb-47a2-8550-dcfaf594438a_pc_mid"),
    ("1.15 Jupyter notebook的基本使用技巧", "https://media.wanmen.org/62a38753-82a2-4d24-ab2e-991eec028e88_pc_mid"),
    ("1.16 Markdown的基本技巧（一）", "https://media.wanmen.org/703efcab-8bc3-484e-b2fb-90cef2bcd2b9_pc_mid"),
    ("1.17 Markdown的基本技巧（二）", "https://media.wanmen.org/1dc27bd1-5c84-4468-8c57-f4e54d7a5bd7_pc_mid"),
]}

p2 = {'name': "第2讲 文献与代码管理工具及统计基础", 'url_info': [
    ("2.1 学习方法总结", "https://media.wanmen.org/94aa4d34-b60f-419a-899c-f1490b48d1bb_pc_mid"),
    ("2.2 Mendeley介绍及安装（一）", "https://media.wanmen.org/a8195ccf-aaed-4f4b-8951-1fca61c8fe0b_pc_mid"),
    ("2.3 Mendeley介绍及安装（二）", "https://media.wanmen.org/1b0ddc7c-bf5b-47a2-bb25-9ebdb5def4fd_pc_mid"),
    ("2.4 GitHub介绍及安装", "https://media.wanmen.org/e144c476-ca70-4201-a9e2-e74ea1c8fabb_pc_mid"),
    ("2.5 GitHub远端连接操作（一）", "https://media.wanmen.org/845bb6e8-f037-4ed2-b5b3-b36037f8348c_pc_mid"),
    ("2.6 GitHub远端连接操作（二）", "https://media.wanmen.org/42f99c55-18b2-4be0-a228-07a6797785c1_pc_mid"),
    ("2.7 GitHub远端连接操作（三）", "https://media.wanmen.org/51b052ff-7685-4b50-ad95-d988bda9853c_pc_mid"),
    ("2.8 答疑（一）", "https://media.wanmen.org/205cc248-2f04-4313-bf3c-833ac524eb88_pc_mid"),
    ("2.9 答疑（二）", "https://media.wanmen.org/145f198f-0554-4b97-9e62-cd7e911f31bc_pc_mid"),
    ("2.10 答疑（三）", "https://media.wanmen.org/899bb47c-0ff3-4ff7-8816-caf62de748c9_pc_mid"),
    ("2.11 统计基础概述", "https://media.wanmen.org/90da05a6-4c7f-4d62-9ae4-35584f498699_pc_mid"),
]}

p3 = {'name': "第3讲 Python基本数据类型", 'url_info': [
    ("3.1 课程概述", "https://media.wanmen.org/25a4817b-9362-47bf-b20b-f6281af2d7ff_pc_mid"),
    ("3.2 计算机语言与程序概述（一）", "https://media.wanmen.org/8b9c15b7-a82d-4a27-907c-a5fd9c2c4772_pc_mid"),
    ("3.3 计算机语言与程序概述（二）", "https://media.wanmen.org/9ce0c119-1ebe-4fb9-9217-cfc6226236ab_pc_mid"),
    ("3.4 为什么需要编程语言", "https://media.wanmen.org/b10e8c93-3a68-41c5-8d75-e65b4c43d9a8_pc_mid"),
    ("3.5 Python能做什么", "https://media.wanmen.org/07d1f51f-46ba-4ed3-bb8c-45a7ec319c89_pc_mid"),
    ("3.6 课间答疑", "https://media.wanmen.org/54af3096-43a8-4704-9fda-7d482df8bb08_pc_mid"),
    ("3.7 Python2和Python3的区别", "https://media.wanmen.org/c7340e0f-ba86-4a9e-a3f1-59eaaceac075_pc_mid"),
    ("3.8 编程语言的元素", "https://media.wanmen.org/8bba8a49-1b3d-4ef5-aa64-a1555ad6aadf_pc_mid"),
    ("3.9 致敬 Hello World", "https://media.wanmen.org/4c910a72-4cef-455a-a7b7-2c2c6155e2db_pc_mid"),
    ("3.10 Python基本数据类型（一）", "https://media.wanmen.org/e293dfde-1678-43f6-95f2-1ff4e883ce27_pc_mid"),
    ("3.11 Python基本数据类型（二）", "https://media.wanmen.org/0faebbe3-2d94-46f7-bc0b-3c85501ef49c_pc_mid"),
    ("3.12 Python基本数据类型（三）", "https://media.wanmen.org/82af3f62-38e1-4712-9804-6f832e4c8265_pc_mid"),
    ("3.13 Python基本数据类型（四）", "https://media.wanmen.org/1b0bcd4a-627f-49e8-8e8d-6bea6c9a94a9_pc_mid"),
    ("3.14 Python基本数据类型（五）", "https://media.wanmen.org/76c8ddda-dbef-4e5e-9383-8b6560870b1c_pc_mid"),
    ("3.15 Python基本数据类型（六）", "https://media.wanmen.org/b58cc26a-16f8-4d6a-a0a4-1b8ffea6c1d7_pc_mid"),
    ("3.16 Python基本数据类型（七）", "https://media.wanmen.org/aa5eacb5-c76e-4813-81c3-1412a50c11c1_pc_mid"),
    ("3.17 Python基本数据类型（八）", "https://media.wanmen.org/ef468ebe-aa7f-44e8-969c-dfd2e84abeee_pc_mid"),
]}

p4 = {'name': "第4讲 函数与Python基本数据结构", 'url_info': [
    ("4.1 函数（一）", "https://media.wanmen.org/cb12fcd7-9994-468f-b1be-691c5fba1863_pc_mid"),
    ("4.2 函数（二）", "https://media.wanmen.org/b29a285e-39ae-4260-b57b-b00d4b876051_pc_mid"),
    ("4.3 函数（三）", "https://media.wanmen.org/91b9a6ed-da7d-435a-b70d-74b5a89ae794_pc_mid"),
    ("4.4 函数（四）", "https://media.wanmen.org/9928e6bd-6313-472e-bec1-de38ae0c25a8_pc_mid"),
    ("4.5 函数（五）", "https://media.wanmen.org/be68a2e0-c188-4e06-9336-284612e5b417_pc_mid"),
    ("4.6 Python编码结构（一）", "https://media.wanmen.org/8c41cee4-a1cf-4f7c-a96a-4d47c76a0e5d_pc_mid"),
    ("4.7 Python编码结构（二）", "https://media.wanmen.org/212bd231-dd10-4bfd-8176-a2e42a9cb481_pc_mid"),
    ("4.8 Python编码结构（三）", "https://media.wanmen.org/9f591044-60dc-4e48-83d9-df1934433146_pc_mid"),
    ("4.9 Python模块和程序包", "https://media.wanmen.org/ec0d7f58-527d-4a12-990a-cd6064175b9c_pc_mid"),
    ("4.10 Python基本数据结构（一）", "https://media.wanmen.org/d3031f75-ab7d-4a25-9868-96a925d34689_pc_mid"),
    ("4.11 Python基本数据结构（二）", "https://media.wanmen.org/a3967f13-d608-4459-a62b-5f0dae96f09d_pc_mid"),
    ("4.12 Python基本数据结构（三）", "https://media.wanmen.org/06858e96-c32f-4fb5-8124-f72c43de8adb_pc_mid"),
]}

p5 = {'name': "第5讲 Numpy的基本操作", 'url_info': [
    ("5.1 Introduction to Numpy", "https://media.wanmen.org/a7c1d172-5001-4e5e-86a0-8addb8cd9e7c_pc_mid"),
    ("5.2 Create Arrays", "https://media.wanmen.org/0c27f970-1de6-47af-bb77-137a9c03cc6a_pc_mid"),
    ("5.3 Basic Operations of Arrays", "https://media.wanmen.org/dfbf90b8-a9bc-4f55-aa36-f2d39570c16f_pc_mid"),
    ("5.4 lndexing ,Slicing and Iterating（一）", "https://media.wanmen.org/703bf44c-0966-46bc-ac18-f0ebfaf3f901_pc_mid"),
    ("5.5 lndexing ,Slicing and Iterating（二）", "https://media.wanmen.org/b6cb054b-03c9-4b8c-9076-b222f6fe883b_pc_mid"),
    ("5.6 lndexing ,Slicing and Iterating（三）", "https://media.wanmen.org/25b5ab9d-37a7-4ab3-840a-470c24333d09_pc_mid"),
    ("5.7 Matrix Operations II（一）", "https://media.wanmen.org/5617fca9-80f5-4ff8-96b7-995648b29335_pc_mid"),
    ("5.8 Matrix Operations II（二）", "https://media.wanmen.org/ccdf919d-e017-4bf7-8088-2e93b2623902_pc_mid"),
    ("5.9 Array processing（一）", "https://media.wanmen.org/74e1e891-7586-42b3-8c1b-c7d73113226d_pc_mid"),
    ("5.10 Array processing（二）", "https://media.wanmen.org/c17ac3f1-a9b2-4c4c-a34e-61855756bf64_pc_mid"),
    ("5.11 Save and Load Array", "https://media.wanmen.org/85a4f345-5110-46af-8ea4-a000b7f3b98d_pc_mid"),
]}

p6 = {'name': "第6讲 Pandas的基本操作", 'url_info': [
    ("6.1 Series", "https://media.wanmen.org/3cbcf337-570e-49a0-81f9-90c221385306_pc_mid"),
    ("6.2 DataFrame+Titanic Example（一）", "https://media.wanmen.org/1fbcb1ff-6c2c-4f0e-b840-40fcc93fc66d_pc_mid"),
    ("6.3 DataFrame+Titanic Example（二）", "https://media.wanmen.org/839d0a88-942d-4994-99ee-604608b0f98e_pc_mid"),
    ("6.4 DataFrame+Titanic Example（三）", "https://media.wanmen.org/ab561713-ea51-429f-a84e-fde7a052797d_pc_mid"),
    ("6.5 DataFrame+Titanic Example（四）", "https://media.wanmen.org/ec2263bc-146e-497b-97a5-f9d07067bcea_pc_mid"),
    ("6.6 Index Objects", "https://media.wanmen.org/610d6f63-11bc-4f83-a0a1-5dce689ad80e_pc_mid"),
    ("6.7 Reindex", "https://media.wanmen.org/87959cfc-38be-4daf-a69e-0f13eee8069b_pc_mid"),
    ("6.8 Drop Data", "https://media.wanmen.org/88614e2f-b1dc-4f1c-9bf2-353cf4783a39_pc_mid"),
    ("6.9 Slice Data（一）", "https://media.wanmen.org/2e15e8c2-4314-4ae6-a632-0e709194cbcc_pc_mid"),
    ("6.10 Slice Data（二）", "https://media.wanmen.org/f2191e39-db85-4822-8a49-41025e4727f5_pc_mid"),
    ("6.11 Data Alignment", "https://media.wanmen.org/868ade91-ad91-4fcc-86a5-e41da326ba88_pc_mid"),
    ("6.12 Rank and Sort", "https://media.wanmen.org/85421f12-a37c-4f43-8fb2-c54cb2f467ee_pc_mid"),
]}

p7 = {'name': "第7讲 Matplotlib的基本操作", 'url_info': [
    ("7.1 Matplotlib（一）", "https://media.wanmen.org/9f5a79fa-17d8-4525-a84d-3d980f975e0a_pc_mid"),
    ("7.2 Matplotlib（二）", "https://media.wanmen.org/f7caf807-8e81-4f0c-93d3-2bd6df6e5d05_pc_mid"),
    ("7.3 Matplotlib（三）", "https://media.wanmen.org/d6c90ce2-dad7-417c-874e-642b928b647d_pc_mid"),
    ("7.4 Matplotlib（四）", "https://media.wanmen.org/9e48f3eb-cce1-465e-b189-c41ea9436c4e_pc_mid"),
    ("7.5 Matplotlib（五）", "https://media.wanmen.org/d930e8a9-8076-46fc-9d88-48f2b4ee6efe_pc_mid"),
    ("7.6 Aggregation（一）", "https://media.wanmen.org/a75afe72-4e52-40df-93f7-562056b18e26_pc_mid"),
    ("7.7 Aggregation（二）", "https://media.wanmen.org/78901268-8028-4721-ac41-5ac17092fe38_pc_mid"),
    ("7.8 Aggregation（三）", "https://media.wanmen.org/51da791b-7748-4f9f-b8a6-23aa794221eb_pc_mid"),
]}

p8 = {'name': "第8讲 什么是好的模型结果-cost function", 'url_info': [
    ("8.1 如何定义一个模型结果的好坏？", "https://media.wanmen.org/cee4de13-9650-4625-9386-274c92b48266_pc_mid"),
    ("8.2 连续变量的模型，如何来衡量模型结果？（一）", "https://media.wanmen.org/db322a11-9412-4672-b665-439ce6a045cb_pc_mid"),
    ("8.3 连续变量的模型，如何来衡量模型结果？（二）", "https://media.wanmen.org/03298673-41ac-44d4-9fb3-4a13662400c2_pc_mid"),
    ("8.4 二分类问题-假设检验，p-value（一）", "https://media.wanmen.org/94177959-a71d-4371-a78d-cd59833aeb08_pc_mid"),
    ("8.5 二分类问题-假设检验，p-value（二）", "https://media.wanmen.org/a47ccd53-16e0-4de4-95cc-7bd882268628_pc_mid"),
    ("8.6 二分类问题-ROC & AUC（一）", "https://media.wanmen.org/8188f9af-09b8-41b8-8cd9-44de9ddaf9f2_pc_mid"),
    ("8.7 二分类问题-ROC & AUC（二）", "https://media.wanmen.org/01c7b26d-1027-4e23-9103-ecd2df5709d8_pc_mid"),
    ("8.8 什么是好的分类（一）", "https://media.wanmen.org/885bcf0c-bf0d-48b5-9973-cae7e3499a6e_pc_mid"),
    ("8.9 二分类问题-召回率，准确率", "https://media.wanmen.org/1065c93b-a5a8-4e38-a7fd-82527f606faa_pc_mid"),
    ("8.10 二分类问题-F1-score", "https://media.wanmen.org/8ebd3f49-d0e3-4740-9d8a-e233743696ef_pc_mid"),
    ("8.11 分类模型，如何衡量模型结果？", "https://media.wanmen.org/5be0faac-4e3c-479a-b48d-97b0e5cfe2b6_pc_mid"),
    ("8.12 imbalanced问题（一）", "https://media.wanmen.org/4a6dafc3-cd15-49c6-b6d8-8177790b636c_pc_mid"),
    ("8.13 imbalanced问题（二）", "https://media.wanmen.org/7c7d80e6-8ded-444a-bc7f-19b153d45884_pc_mid"),
]}

p9 = {'name': "第9讲 线性回归", 'url_info': [
    ("9.1 知识回顾", "https://media.wanmen.org/40f383e0-6f3b-475b-b202-a3804ea47f78_pc_mid"),
    ("9.2 为什么要使用线性回归？", "https://media.wanmen.org/b7bec146-3fb2-4b10-9adc-4ddfe50c6401_pc_mid"),
    ("9.3 如何计算线性回归？（一）", "https://media.wanmen.org/78be12f0-a877-442f-98f4-304eee16a6bb_pc_mid"),
    ("9.4 如何计算线性回归？（二）", "https://media.wanmen.org/6b87f30e-2374-4fe7-9afc-3d25fd30a0a5_pc_mid"),
    ("9.5 问题解答", "https://media.wanmen.org/87b9aa43-fa18-4caf-affb-bb4ebb94d70f_pc_mid"),
    ("9.6 由最小二乘法选出的直线有没有用？（一）", "https://media.wanmen.org/5eb1a6a0-8c37-40ab-966d-7f3d5cfa3634_pc_mid"),
    ("9.7 由最小二乘法选出的直线有没有用？（二）", "https://media.wanmen.org/b3bc39d8-b69d-41fc-a1ad-7ccc172cf329_pc_mid"),
    ("9.8 线性回归参数估计的含义", "https://media.wanmen.org/740e708e-492e-469e-bf28-5182bf9571bc_pc_mid"),
    ("9.9 线性回归对数据的解释", "https://media.wanmen.org/ae05d106-69e8-40e2-8d4d-3a939bc60156_pc_mid"),
    ("9.10 线性回归对样本及误差的要求和假设前提（一）", "https://media.wanmen.org/e77690ab-5b3a-4ece-831c-b7daa75d9eaa_pc_mid"),
    ("9.11 线性回归对样本及误差的要求和假设前提（二）", "https://media.wanmen.org/644f995d-d464-4ef9-a4d5-210b700fb97e_pc_mid"),
    ("9.12 预测的confidence interval 和 prediction interval（一）", "https://media.wanmen.org/54d7b523-0b77-4c8a-a267-c3feedc22bcb_pc_mid"),
    ("9.13 预测的confidence interval 和 prediction interval（二）", "https://media.wanmen.org/aaf231a6-92ad-4759-99fc-9dbbe0a59f93_pc_mid"),
    ("9.14 预测的confidence interval 和 prediction interval（三）", "https://media.wanmen.org/135fe19c-2927-424e-b897-03b42cadce07_pc_mid"),
    ("9.15 imbalanced问题", "https://media.wanmen.org/5afe6b45-34ec-4f5b-a0a0-8ef213d72d7b_pc_mid"),
]}

p10 = {'name': "第10讲 逻辑回归及应用", 'url_info': [
    ("10.1 逻辑回归与线性回归", "https://media.wanmen.org/3d9e4ddd-3e0b-4d8d-a330-d0460582d82e_pc_mid"),
    ("10.2 如何计算信用分数", "https://media.wanmen.org/3031c00c-dc88-4ced-a51a-4647961854f1_pc_mid"),
    ("10.3 商家如何查看芝麻信用值？", "https://media.wanmen.org/919ca7f7-494c-48ad-a132-c62f7e26f911_pc_mid"),
    ("10.4 寻找最合理的参数-1设计Cost Function", "https://media.wanmen.org/220ef3f7-76c2-4422-9656-febd62be4d1e_pc_mid"),
    ("10.5 疑题解答", "https://media.wanmen.org/c2384fe1-c84e-4deb-a473-79cad210b10d_pc_mid"),
    ("10.6 寻找最合理的参数-3. 计算最优参数（一）", "https://media.wanmen.org/0c4eb1c9-f5eb-4e64-841e-a51ec71bae71_pc_mid"),
    ("10.7 寻找最合理的参数-3. 计算最优参数（二）", "https://media.wanmen.org/b3dbde3b-89b9-4c5c-8d81-7c59b2a2d568_pc_mid"),
    ("10.8 寻找最合理的参数-3. 计算最优参数（三）", "https://media.wanmen.org/1fc89f94-4ae2-40a6-8f74-fc2c5d7aa343_pc_mid"),
    ("10.9 寻找最合理的参数-3. 计算最优参数（四）", "https://media.wanmen.org/27dee2f4-3bd6-4e47-9aab-b431e763239a_pc_mid"),
    ("10.10 寻找最合理的参数-3. 计算最优参数（五）", "https://media.wanmen.org/5d7f0cbb-20e5-4b64-96a9-edb9c9e1b1f9_pc_mid"),
    ("10.11 寻找最合理的参数-3. 计算最优参数（六）", "https://media.wanmen.org/3c8d659b-1400-4c3b-9de0-ab9183c7350f_pc_mid"),
    ("10.12 更进一步：从逻辑回归到SoftMax（一）", "https://media.wanmen.org/3b852ef6-6c52-452b-8246-c21d57af6c6b_pc_mid"),
    ("10.13 更进一步：从逻辑回归到SoftMax（二）", "https://media.wanmen.org/bf096eca-bac8-4ed1-a3c6-0ef6cb0744e3_pc_mid"),
]}

p11 = {'name': "第11讲 拟合与过拟合的定义", 'url_info': [
    ("11.1 拟合与过拟合", "https://media.wanmen.org/08e33ecd-cf43-4bae-be2b-d2da063c3005_pc_mid"),
    ("11.2 对抗过拟合（一）", "https://media.wanmen.org/de581b19-9a0c-47f2-90d8-b41cd4fa232a_pc_mid"),
    ("11.3 对抗过拟合（二）", "https://media.wanmen.org/89310ffe-d498-4ea7-ae89-d93f03b9e7aa_pc_mid"),
    ("11.4 对抗过拟合（三）", "https://media.wanmen.org/173feb77-51b1-4116-85fe-5c7397cdcef8_pc_mid"),
    ("11.5 Python实现（一）", "https://media.wanmen.org/9bd1a048-f079-43b5-adaf-7b56cbb721ac_pc_mid"),
    ("11.6 Python实现（二）", "https://media.wanmen.org/b59305ce-e189-4e3a-8b43-065210589bb4_pc_mid"),
    ("11.7 正则化Regularization", "https://media.wanmen.org/182d7c35-0558-4fc4-89a4-efdacbab8c96_pc_mid"),
    ("11.8 Ridge（一）", "https://media.wanmen.org/ce5179c9-d09c-464f-976f-db9b86e58d8a_pc_mid"),
    ("11.9 Ridge（二）", "https://media.wanmen.org/2e5c8109-67c5-41e7-8050-ed5adeaee2e0_pc_mid"),
    ("11.10 方差的分解（一）", "https://media.wanmen.org/fb33e47a-4a81-4159-b480-9a50b36845d9_pc_mid"),
    ("11.11 方差的分解（二）", "https://media.wanmen.org/f8aa810a-4992-4b1a-8b34-c3d6f0f88fe3_pc_mid"),
    ("11.12 Bias与Variance的分解", "https://media.wanmen.org/cdc1e090-a3df-4493-9d67-b2f4422071f4_pc_mid"),
]}

p12 = {'name': "第12讲 决策树模型", 'url_info': [
    ("12.1 什么是决策树？", "https://media.wanmen.org/913f2398-32fc-4f23-bc41-2f36a7d312be_pc_mid"),
    ("12.2 游戏中的决策树分析（一）", "https://media.wanmen.org/608b0e75-4ca7-4fb2-8a0b-5e52b567da31_pc_mid"),
    ("12.3 游戏中的决策树分析（二）", "https://media.wanmen.org/bc2a53a0-944c-4a94-8286-ab0babf2834f_pc_mid"),
    ("12.4 哪个问题分的最好？", "https://media.wanmen.org/00f22ad8-da2f-4723-b89e-7bcc8e1a36c5_pc_mid"),
    ("12.5 Decision Tree_example1（一）", "https://media.wanmen.org/d20ec764-a3f5-496a-8741-74ea6a87980b_pc_mid"),
    ("12.6 Decision Tree_example1（二）", "https://media.wanmen.org/18ce6767-1d42-4719-a5ed-3be374b299a0_pc_mid"),
    ("12.7 Decision Tree_example1（三）", "https://media.wanmen.org/72f800f3-f8b2-450e-8db3-2bba439c4659_pc_mid"),
    ("12.8 Decision Tree_example1（四）", "https://media.wanmen.org/ea4c435d-90c8-44df-9349-db2a7809f293_pc_mid"),
    ("12.9 Decision Tree_example1（五）", "https://media.wanmen.org/d4326560-0ace-4778-9302-b8dc59cabd09_pc_mid"),
    ("12.10 Decision Tree_example1（六）", "https://media.wanmen.org/2f059ecd-febd-4a86-aa84-f2abf0b06cf1_pc_mid"),
    ("12.11 Decision Tree_example1（七）", "https://media.wanmen.org/719d5912-a00d-4b7c-a7c0-79c9b6d35c5b_pc_mid"),
]}

p13 = {'name': "第13讲 Pandas 数据操作与Ensemble Method 集成算法", 'url_info': [
    ("13.1 Combining dataframes", "https://media.wanmen.org/fad593eb-e4aa-4679-bf59-c50728a66296_pc_mid"),
    ("13.2 Mapping", "https://media.wanmen.org/e16ce910-fde3-47ef-bc4a-e39fc273789d_pc_mid"),
    ("13.3 Binning", "https://media.wanmen.org/f0718f63-6e1c-47eb-b5c5-25accdbe0630_pc_mid"),
    ("13.4 GroupBy On Dict and Series（一）", "https://media.wanmen.org/c45d82ad-b9ba-489f-91a6-201be99c234e_pc_mid"),
    ("13.5 GroupBy On Dict and Series（二）", "https://media.wanmen.org/ad7c297f-b97e-453d-854a-d817b11bbb81_pc_mid"),
    ("13.6 Merge（一）", "https://media.wanmen.org/b1067a4d-0d49-4a2e-b8da-9d1ca58e8539_pc_mid"),
    ("13.7 Merge（二）", "https://media.wanmen.org/066362a0-7d51-4e3e-98ff-99cb1e7f049a_pc_mid"),
    ("13.8 Outliers", "https://media.wanmen.org/62087a45-9262-4300-9692-bbacb63a8f33_pc_mid"),
    ("13.9 Pivoting", "https://media.wanmen.org/24417880-8083-491a-bc12-8d4add3c1240_pc_mid"),
    ("13.10 Replace", "https://media.wanmen.org/bb82dbea-dd9a-45a2-92d0-7d87028445c1_pc_mid"),
    ("13.11 Bagging (Bootstrap aggregating)", "https://media.wanmen.org/d53ec293-b3a5-44e4-8a9a-0c61f1c394ef_pc_mid"),
    ("13.12 Boosting and Ada boosting（一）", "https://media.wanmen.org/ae596743-ff81-4193-9b8c-25c76edac61d_pc_mid"),
    ("13.13 Boosting and Ada boosting（二）", "https://media.wanmen.org/c8116227-f9d8-4dde-a842-1a24088d2f1e_pc_mid"),
    ("13.14 Gradient Boosting", "https://media.wanmen.org/14b9abb6-dc64-4102-9921-9f8043e584c5_pc_mid"),
]}

p14 = {'name': "第14讲 Airbnb 数据分析", 'url_info': [
    ("14.1 Airbnb介绍", "https://media.wanmen.org/0c47a529-062b-4f23-8dce-fcef84232b59_pc_mid"),
    ("14.2 Train and Test 用户本身数据和营销渠道数据", "https://media.wanmen.org/49f763ee-5c36-4127-95e1-151adfca51e5_pc_mid"),
    ("14.3 Airbnb_DataExploration（一）", "https://media.wanmen.org/0d7f0038-b8d5-41f6-83f8-697949bb7f10_pc_mid"),
    ("14.4 Airbnb_DataExploration（二）", "https://media.wanmen.org/0c69a517-16f9-4889-a1ac-b16f57438db4_pc_mid"),
    ("14.5 Airbnb_DataExploration（三）", "https://media.wanmen.org/4398b44b-845b-4f56-9608-d7152ead7261_pc_mid"),
    ("14.6 Airbnb_FeatureEngineering（一）", "https://media.wanmen.org/459c666d-27ee-4a20-854f-40b1296c64ae_pc_mid"),
    ("14.7 Airbnb_FeatureEngineering（二）", "https://media.wanmen.org/549e198c-3e17-4c23-b831-3d726cbc3440_pc_mid"),
    ("14.8 Airbnb_FeatureEngineering（三）", "https://media.wanmen.org/aa7a99b6-3cb7-4d26-a49a-b121df2077ce_pc_mid"),
    ("14.9 Airbnb_FeatureEngineering（四）", "https://media.wanmen.org/3946eab8-9bb4-44e7-adec-1b4062d4ed46_pc_mid"),
    ("14.10 Modeling（一）", "https://media.wanmen.org/e067cfb6-f7c9-4e17-a8b8-0d22ae85895f_pc_mid"),
    ("14.11 Modeling（二）", "https://media.wanmen.org/9effcc36-90f7-43e2-b0b1-b755c10087e1_pc_mid"),
]}

p25 = {'name': "第25讲 BiliBili火爆剧集与观众分析", 'url_info': [
    ("25.1 结巴分词原理", "https://media.wanmen.org/18aefab7-4091-4ab8-8ead-62eaba6d8e45_pc_mid"),
    ("25.2 结巴分词使用", "https://media.wanmen.org/ac3089cc-3c71-4d7f-9e29-5d0fb569b200_pc_mid"),
    ("25.3 去除NaN、分词", "https://media.wanmen.org/4c6c2f15-fe6d-4079-b4a9-902fd5065b45_pc_mid"),
    ("25.4 去停用词、整理词频", "https://media.wanmen.org/4359b70e-2330-45b9-a18f-8bb2e16ef55c_pc_mid"),
    ("25.5 关键词计算", "https://media.wanmen.org/64fd7d94-caac-4847-a417-390333ddd996_pc_mid"),
    ("25.6 生成词云", "https://media.wanmen.org/5659a0e5-fe97-4302-a319-38e12a0525a5_pc_mid"),
    ("25.7 沿时间的动态变化：频率与高频词（一）", "https://media.wanmen.org/2533c490-f551-4aa8-ab06-e41297a96f8b_pc_mid"),
    ("25.8 沿时间的动态变化：频率与高频词（二）", "https://media.wanmen.org/a33816d5-beee-4000-ab0f-2a82d48f1069_pc_mid"),
    ("25.9 沿时间的动态变化：频率与高频词（三）", "https://media.wanmen.org/876e22c3-fae0-4fe3-a9fd-0c0deb316ff6_pc_mid"),
    ("25.10 二十四小时的弹幕频率分布", "https://media.wanmen.org/3795b7f5-f5ed-407e-a427-dcb2f508bb39_pc_mid"),
    ("25.11 年内的弹幕频率分布", "https://media.wanmen.org/7982c599-2692-4b02-9421-5275e6f2d037_pc_mid"),
    ("25.12 观众信息", "https://media.wanmen.org/b2f70257-9cae-4e8d-901c-5d726c54df05_pc_mid"),
    ("25.13 脑筋急转弯（一）", "https://media.wanmen.org/67da78f2-d734-4def-8b71-eac1f776814a_pc_mid"),
    ("25.14 脑筋急转弯（二）", "https://media.wanmen.org/dbd86f3b-ef9f-4a8b-af69-7fa3e1ec0b0e_pc_mid"),
]}

p26 = {'name': "第26讲 聚类与代码实战", 'url_info': [
    ("26.1 课程概要", "https://media.wanmen.org/71357811-3100-4454-a819-dc2871cf7611_pc_mid"),
    ("26.2 机器学习与聚类简介", "https://media.wanmen.org/13be1c8e-c5e4-4019-a6cb-66bf94b7ba9d_pc_mid"),
    ("26.3 聚类的定义以及和分类的区别", "https://media.wanmen.org/9f0587b4-f715-43d1-90ca-5e949a67bf89_pc_mid"),
    ("26.4 聚类相似度度量：几何距离", "https://media.wanmen.org/d266ab46-343e-4300-b5f8-be2c5bf2ba0f_pc_mid"),
    ("26.5 划分聚类", "https://media.wanmen.org/ea00efb2-f715-4f58-9eb5-e8c74be17410_pc_mid"),
    ("26.6 划分聚类—K均值算法（一）", "https://media.wanmen.org/f5e4702e-d237-45c2-945a-b2a24de88a01_pc_mid"),
    ("26.7 划分聚类—K均值算法（二）", "https://media.wanmen.org/16d68b25-5bf3-478c-9d87-86a33229413b_pc_mid"),
    ("26.8 层次聚类", "https://media.wanmen.org/29302828-b996-47b0-88ba-9fb91d1dbe8f_pc_mid"),
    ("26.9 Agglomerative clustering算法", "https://media.wanmen.org/4cee2989-59d6-40b2-b5ae-2b9667e11e22_pc_mid"),
    ("26.10 密度聚类", "https://media.wanmen.org/990a384c-1ead-4504-a105-dc67ce3728ba_pc_mid"),
    ("26.11 DBSCAN", "https://media.wanmen.org/d266e837-cad2-43f5-903b-c2cf74f15591_pc_mid"),
    ("26.12 聚类算法总结", "https://media.wanmen.org/6cc72b63-6d6d-444b-8459-d308a813e867_pc_mid"),
    ("26.13 代码实战（一）", "https://media.wanmen.org/9d58ae28-1a32-414f-aa12-fd5c668bfe6d_pc_mid"),
    ("26.14 代码实战（二）", "https://media.wanmen.org/a0695cb0-b3c2-4ff2-9428-33aae175370b_pc_mid"),
    ("26.15 代码实战（三）", "https://media.wanmen.org/3f1d06a9-3e89-46bf-80ac-eb5ddda1464e_pc_mid"),
]}

p27 = {'name': "第27讲 商业社交媒体舆情分析", 'url_info': [
    ("27.1 脑筋急转弯（一）", "https://media.wanmen.org/35e8d7ca-5c43-46fa-80f9-7c9bf451f692_pc_mid"),
    ("27.2 脑筋急转弯（二）", "https://media.wanmen.org/76794760-3d08-4970-92d4-f6ab390f5ead_pc_mid"),
    ("27.3 脑筋急转弯（三）", "https://media.wanmen.org/98ad24e7-6519-4fd3-b35f-ebca6affd0df_pc_mid"),
    ("27.4 社媒舆情分析的目的", "https://media.wanmen.org/d07ac9b3-59c9-419a-a987-e55831f1026a_pc_mid"),
    ("27.5 作用价值一：获取市场的必要信息（一）", "https://media.wanmen.org/2cd35b1e-dba7-4fe3-9266-6167cf37370e_pc_mid"),
    ("27.6 作用价值一：获取市场的必要信息（二）", "https://media.wanmen.org/446e2d44-9ca9-4892-af8e-e24af82435b9_pc_mid"),
    ("27.7 如何通过舆情分析掌握市场状况", "https://media.wanmen.org/38ed1a2c-9053-419f-a598-160c86503602_pc_mid"),
    ("27.8 作用价值二：提升决策敏感性", "https://media.wanmen.org/57047192-f2b7-49d0-9a87-67a68386bf6c_pc_mid"),
    ("27.9 有趣的营销发现", "https://media.wanmen.org/5c6dd7dc-c704-4093-9312-8e98be1c02a6_pc_mid"),
    ("27.10 作用价值三：寻找接触点", "https://media.wanmen.org/372bf00c-e5dd-4786-abc3-cdce56b998de_pc_mid"),
    ("27.11 总结：营销领域的舆情分析应用", "https://media.wanmen.org/a8830d7d-dcb8-4a4b-a744-29489496b0cd_pc_mid"),
    ("27.12 答疑（一）", "https://media.wanmen.org/e6b313b5-4bb1-4241-bc28-78bbc592b337_pc_mid"),
    ("27.13 答疑（二）", "https://media.wanmen.org/27f31b53-252a-4834-ba66-b4eceb3ff8c1_pc_mid"),
]}

parts = [p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p25, p26, p27]
URLS = [(part.get('name'), item[0], item[1]) for part in parts for item in part.get('url_info')]

if __name__ == '__main__':
    from utils import check_url
    starts = 'https://media.wanmen.org/'
    ends = '_pc_mid'
    check_url.check([i[2] for i in URLS], starts, ends)
    print("视频数量:", len(URLS))

